home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / comm / tcp / Amster-main.lha / Amster_Install / Rexx / Whois_Triton.rexx < prev   
OS/2 REXX Batch file  |  2000-09-09  |  10KB  |  297 lines

  1. /*
  2. ** Amster User Search Demo
  3. ** $VER: Whois.rexx 0.3 (09.9.2000)
  4. **
  5. ** By Roger Clark (kaedric@texas.net)
  6. ** September 9, 2000
  7. **
  8. ** This script requires the rexxreqtools.library which can be found on Aminet.
  9. **                      util/rexx/RexxReqTools.lha
  10. **
  11. ** This script requires the tritonrexx.library which can be found on Aminet.
  12. **                      util/rexx/TritonRexx376.lha
  13. **
  14. ** This script requires the triton.library which can be found on Aminet.
  15. **                      dev/gui/tri20b1usr.lha
  16. **
  17. */
  18.  
  19. Options Results
  20. Parse Arg Username
  21.  
  22. Signal On Break_C
  23. Signal On halt
  24. Signal On ioerr
  25. Signal On syntax
  26.  
  27. If ~show(L,"rexxreqtools.library") Then Do
  28.   If ~addlib("rexxreqtools.library",0,-30,0) Then Do
  29.     Say "Could not access the rexxreqtools.library!"
  30.     Exit 20
  31.   End
  32. End
  33.  
  34. If ~Show('L','tritonrexx.library') Then Do
  35.    If ~addlib('tritonrexx.library',10,-30,0) Then Do
  36.       Say 'Could not access the tritonrexx.library!'
  37.       Exit 10
  38.    End
  39. End
  40.  
  41. X = 1
  42. Y = 1
  43. LUser. = ""
  44. Speed = 11
  45. OnlineTime = ""
  46.  
  47. Link.0  = "Unknown"
  48. Link.1  = "14.4K Modem"
  49. Link.2  = "28.8K Modem"
  50. Link.3  = "33.6K Modem"
  51. Link.4  = "56K Modem"
  52. Link.5  = "ISDN 64K"
  53. Link.6  = "ISDN 128K"
  54. Link.7  = "Cable"
  55. Link.8  = "DSL"
  56. Link.9  = "T1"
  57. Link.10 = "T3+"
  58. Link.11 = ""
  59.  
  60. windowtags =   WindowID(1),
  61.                WindowTitle('Amster WhoIs'),
  62.                  BeginMenu('Project'),
  63.                    MenuItem('W_Whois?',1),
  64.                    MenuItem('?_About',2),
  65.                    MenuItem('Q_Quit',3),
  66.                  'HorizGroupAC',
  67.                    'VertGroupA',
  68.                      'Space',
  69.                      'BeginLine',
  70.                        'Space',
  71.                        Text3('Nick    '),
  72.                        'Space',
  73.                        ClippedTextBoxMW(LUser.Nick,4,30),
  74.                        'Space',
  75.                        Text3('Level'),
  76.                        'Space',
  77.                        ClippedTextBoxMW(LUser.Level,5,11),
  78.                        'Space',
  79.                      'EndLine',
  80.                      'Space',
  81.                      'BeginLine',
  82.                        'Space',
  83.                        Text3('Time    '),
  84.                        'Space',
  85.                        ClippedTextBoxMW(OnlineTime,6,11),
  86.                        'Space',
  87.                        Text3('  Status'),
  88.                        'Space',
  89.                        ClippedTextBoxMW(LUser.Status,7,27),
  90.                        'Space',
  91.                      'EndLine',
  92.                      'Space',
  93.                      'BeginLine',
  94.                        'Space',
  95.                        Text3('Channels'),
  96.                        'Space',
  97.                        ClippedTextBoxMW(LUser.Channels,8,50),
  98.                        'Space',
  99.                      'EndLine',
  100.                      'Space',
  101.                      'BeginLine',
  102.                        'Space',
  103.                        Text3('Shares  '),
  104.                        'Space',
  105.                        ClippedTextBoxMW(LUser.Shares,9,6),
  106.                        'Space',
  107.                        Text3('    Downloads'),
  108.                        'Space',
  109.                        ClippedTextBoxMW(LUser.Downloads,10,6),
  110.                        'Space',
  111.                        Text3('    Uploads'),
  112.                        'Space',
  113.                        ClippedTextBoxMW(LUser.Uploads,11,6),
  114.                        'Space',
  115.                      'EndLine',
  116.                      'Space',
  117.                      'BeginLine',
  118.                        'Space',
  119.                        Text3('Speed   '),
  120.                        'Space',
  121.                        ClippedTextBoxMW(Link.Speed,12,11),
  122.                        'Space',
  123.                        Text3('  Client'),
  124.                        'Space',
  125.                        ClippedTextBoxMW(LUser.Client,13,27),
  126.                        'Space',
  127.                      'EndLine',
  128.                      'Space',
  129.                      'BeginLine',
  130.                        'Space',
  131.                        Button('Whois?',14),
  132.                        'Space',
  133.                        Button('Next Server',15),
  134.                        'Space',
  135.                        Button('Quit',16),
  136.                        'Space',
  137.                      'EndLine',
  138.                      'Space',
  139.                    'EndGroup',
  140.                  'EndGroup',
  141.                'EndProject'
  142.  
  143. app = TR_CREATEAPP('TRCA_Name AmsterWhoIs')
  144. If app ~= '00000000'x Then Do
  145.   window = TR_OPENPROJECT(app,windowtags)
  146.   If window ~= '00000000'x Then Do
  147.     Done = 0
  148.     Call ReadServers
  149.     Do While Done ~= 1
  150.       Call TR_WAIT(app,'')
  151.       Do While TR_HANDLEMSG(app,'event')
  152.         If event.trm_class = 'TRMS_ACTION' Then Do
  153.           Select
  154.             When event.trm_id = 1 | event.trm_id = 14 Then Do
  155.               Username = ""
  156.               Call Whois
  157.             End
  158.             When event.trm_id = 2 Then Do
  159.               Call rtezrequest("Whois.rexx v0.3"||D2C(10)||"By: Roger Clark (kaedric@texas.net)"||D2C(10)||"Date: September 9, 2000","Thanks","About Whois.rexx")
  160.             End
  161.             When event.trm_id = 3 | event.trm_id = 16 Then Do
  162.               Done = 1
  163.             End
  164.             When event.trm_id = 15 Then Do
  165.               Call ChangeServers
  166.             End
  167.             Otherwise NOP
  168.           End
  169.         End
  170.         If event.trm_class = 'TRMS_CLOSEWINDOW' Then Do
  171.           Done = 1
  172.         End
  173.       End
  174.     End
  175.     Call TR_CLOSEPROJECT(window)
  176.   End
  177.   Call TR_DELETEAPP(app)
  178. End
  179. Exit
  180.  
  181. ChangeServers:
  182.   Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Username)
  183.   Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT','')
  184.   Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT','')
  185.   Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','')
  186.   Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
  187.   Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
  188.   Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
  189.   Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
  190.   Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
  191.   Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
  192.   If Y = 0 Then Do
  193.     Address 'AMSTER.1' 'CONNECT'
  194.   End
  195.   Else Do
  196.     Address 'AMSTER.1' 'CONNECT SERVER 'IPAddress.Y' PORT 'PortNumber.Y
  197.     Y = Y + 1
  198.     If Y > X then Y = 1
  199.   End
  200.   Address 'AMSTER.1' 'ISONLINE'
  201.   Do While RC = 0
  202.     Call Delay(50)
  203.     Address 'AMSTER.1' 'ISONLINE'
  204.   End
  205.  
  206. Whois:
  207.   If Username = "" Then Do
  208.     Username = rtgetstring("","Enter user name to search for.","Whois.rexx")
  209.     If Username = "" Then Return
  210.   End
  211.   Address 'AMSTER.1' 'WHOIS 'Username' LUSER'
  212.   If RC = 0 Then Do
  213.     Speed = LUSER.LINK
  214.     Hours = LUSER.TIME % 3600
  215.     Minutes = (LUSER.TIME % 60) - (Hours * 60)
  216.     Seconds = LUSER.TIME - (Hours * 3600) - (Minutes * 60)
  217.     OnlineTime = Hours":"Right("00"||Minutes,2)":"Right("00"||Seconds,2)
  218.     Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Luser.Nick)
  219.     Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT',Luser.Level)
  220.     Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT',OnlineTime)
  221.     Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT',Luser.Status)
  222.     Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT',Luser.Channels)
  223.     Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT',Luser.Shares)
  224.     Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT',Luser.Downloads)
  225.     Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT',Luser.Uploads)
  226.     Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT',Link.Speed)
  227.     Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT',Luser.Client)
  228.     Return
  229.   End
  230.   Else If RC = 1 Then Do
  231.     Logoff = Date('N',LUSER.LASTSEEN % (60*60*24), 'I')
  232.     ElapSec = ((LUSER.LASTSEEN / (60*60*24)) - (LUSER.LASTSEEN % (60*60*24))) * 60 * 60 * 24 % 1
  233.     Hours = ElapSec % 3600
  234.     Minutes = (ElapSec % 60) - (Hours * 60)
  235.     Seconds = ElapSec - (Hours * 3600) - (Minutes * 60)
  236.     OfflineTime = Hours":"Right("00"||Minutes,2)":"Right("00"||Seconds,2)
  237.     Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Luser.Nick)
  238.     Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT',Luser.Level)
  239.     Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT',OfflineTime)
  240.     Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','Last seen on 'Logoff)
  241.     Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
  242.     Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
  243.     Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
  244.     Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
  245.     Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
  246.     Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
  247.     Return
  248.   End
  249.   Else Do
  250.     Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Username)
  251.     Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT','')
  252.     Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT','')
  253.     Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','Unknown User!')
  254.     Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
  255.     Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
  256.     Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
  257.     Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
  258.     Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
  259.     Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
  260.     Return
  261.   End
  262.   Return
  263.  
  264.  
  265. ReadServers:
  266.   Dir = Pragma("D")
  267.   Servers = "Amster.servers"
  268.   If ~Exists(Servers) Then Do
  269.     Servers = rtfilerequest(Dir,Servers,"Select Server List",,,)
  270.     If Servers = "" Then Do
  271.       X = 0 
  272.       Y = 0
  273.       Return
  274.     End
  275.   End
  276.  
  277.   Call Open(In,Servers,"R")
  278.     X = 1
  279.     Do Until EOF(In)
  280.       ServerData = ReadLn(In)
  281.       IPAddress.X  = Word(ServerData,1)
  282.       PortNumber.X = Word(ServerData,2)
  283.       X = X + 1
  284.     End
  285.     X = X - 1
  286.   Call Close(In)
  287.   Return
  288.  
  289. break_c:
  290. halt:
  291. ioerr:
  292. syntax:
  293.    Call rtezrequest('Notify the author about this!'||D2C(10)||'+++ Error' rc 'in line' sigl '-' ERRORTEXT(rc),'Oops!','Error!')
  294.    If app ~= '00000000'x THEN
  295.       Call TR_DELETEAPP(app)
  296.    Exit
  297.